3 competing cell technologies may claim marketshare in future; Bifacial PERC, bifacial SHJ, and Bifacial TOPCon. Each design has different efficiency and a different silver intensity. This analysis seeks compare these technologies on a mass and energy basis. A psuedo global deployment projection hitting 100% RE targets in 2050 is used so that silver demand can be evaluated at the global level.
Make 4+ scenarios
We will use the silver intensity and module efficiency projections from:
Zhang, Yuchao, Moonyong Kim, Li Wang, Pierre Verlinden, and Brett Hallam. 2021. “Design Considerations for Multi-Terawatt Scale Manufacturing of Existing and Future Photovoltaic Technologies: Challenges and Opportunities Related to Silver, Indium and Bismuth Consumption.” Energy & Environmental Science. https://doi.org/10.1039/D1EE01814K.
and
Gervais, Estelle, Shivenes Shammugam, Lorenz Friedrich, and Thomas Schlegl. 2021. “Raw Material Needs for the Large-Scale Deployment of Photovoltaics – Effects of Innovation-Driven Roadmaps on Material Constraints until 2050.” Renewable and Sustainable Energy Reviews 137 (March): 110589. https://doi.org/10.1016/j.rser.2020.110589.
import numpy as np
import pandas as pd
import os,sys
from pathlib import Path
import matplotlib.pyplot as plt
cwd = os.getcwd() #grabs current working directory
testfolder = str(Path().resolve().parent.parent / 'PV_ICE' / 'TEMP' / 'CellTechCompare')
inputfolder = str(Path().resolve().parent.parent / 'PV_ICE' / 'TEMP')
baselinesfolder = str(Path().resolve().parent.parent /'PV_ICE' / 'baselines')
supportMatfolder = str(Path().resolve().parent.parent / 'PV_ICE' / 'baselines' / 'SupportingMaterial')
if not os.path.exists(testfolder):
os.makedirs(testfolder)
Bring in the data from Zhang et al 2021 and Gervais et al 2021.
lit_celltech = pd.read_excel(os.path.join(supportMatfolder,'CellTechCompare','PERCvSHJvTOPCon-LitData.xlsx'), sheet_name='Sheet2',
header=[0,1,2], index_col=0)
lit_celltech.columns.get_level_values
<bound method MultiIndex.get_level_values of MultiIndex([('Zhang et al 2021 (hallam)', 'PERC', 'ModuleEff'),
('Zhang et al 2021 (hallam)', 'PERC', 'Ag_mgpcell'),
('Zhang et al 2021 (hallam)', 'SHJ', 'ModuleEff'),
('Zhang et al 2021 (hallam)', 'SHJ', 'Ag_mgpcell'),
('Zhang et al 2021 (hallam)', 'TOPCon', 'ModuleEff'),
('Zhang et al 2021 (hallam)', 'TOPCon', 'Ag_mgpcell')],
names=[None, None, 'year'])>
#Zhang et al Table 2 gives cell size assumptions 166mm cells
cell_size_m2 = np.square(0.166)
#calculate silver use per meter squared for each tech
zhang_perc_Ag_kgpm2 = lit_celltech['Zhang et al 2021 (hallam)']['PERC']['Ag_mgpcell']/1000/cell_size_m2 #creates series
zhang_shj_Ag_kgpm2 = lit_celltech['Zhang et al 2021 (hallam)']['SHJ']['Ag_mgpcell']/1000/cell_size_m2
zhang_topcon_Ag_kgpm2 = lit_celltech['Zhang et al 2021 (hallam)']['TOPCon']['Ag_mgpcell']/1000/cell_size_m2
Gervais et al 2021 also project silver use, but through 2050. We wil use Zhang et al silver intensity through 2030, then a futher decrease from Gervais et al to 2050. There is no projection of TOPCon from Gervais et al, so we will assume a similar magnitude of continued decrease.
lit_celltech.loc[2030]
year
Zhang et al 2021 (hallam) PERC ModuleEff 24.5
Ag_mgpcell 57.0
SHJ ModuleEff 25.3
Ag_mgpcell 99.0
TOPCon ModuleEff 25.0
Ag_mgpcell 95.0
Name: 2030, dtype: float64
Gervais_perc_2050 = pd.Series({2050:40}) #mg/cell
Gervais_shj_2050 = pd.Series({2050:80}) #mg/cell
guess_topcon_2050 = pd.Series({2050:(95-18)}) # mg/cell 99-80 = 19, 57-40 = 17, guess further 18mg decrease
#assuming the same cell size as Zhang et al (it isn't specified in Gervais)
Gervais_perc_2050_kgpm2 = Gervais_perc_2050/1000/cell_size_m2
Gervais_shj_2050_kgpm2 = Gervais_shj_2050/1000/cell_size_m2
guess_topcon_2050_kgpm2 = guess_topcon_2050/1000/cell_size_m2
perc_Ag_kgpm2 = pd.concat([zhang_perc_Ag_kgpm2.loc[:2049], Gervais_perc_2050_kgpm2])
shj_Ag_kgpm2 = pd.concat([zhang_shj_Ag_kgpm2.loc[:2049], Gervais_shj_2050_kgpm2])
topcon_Ag_kgpm2 = pd.concat([zhang_topcon_Ag_kgpm2.loc[:2049], guess_topcon_2050_kgpm2])
#filled projections 2020 through 2050
perc_Ag_kgpm2.interpolate(inplace=True)
shj_Ag_kgpm2.interpolate(inplace=True)
topcon_Ag_kgpm2.interpolate(inplace=True)
Now lets use Zhang et al's projections of efficiency increases. These are reasonably ambitious, achieving ~25% by 2030, but PV is usually an overachiever. We will hold efficiency constant after 2030.
zhang_perc_modeff = lit_celltech['Zhang et al 2021 (hallam)']['PERC']['ModuleEff']
zhang_shj_modeff = lit_celltech['Zhang et al 2021 (hallam)']['SHJ']['ModuleEff']
zhang_topcon_modeff = lit_celltech['Zhang et al 2021 (hallam)']['TOPCon']['ModuleEff']
zhang_perc_modeff.interpolate(inplace=True)
zhang_shj_modeff.interpolate(inplace=True)
zhang_topcon_modeff.interpolate(inplace=True)
modeffs = pd.concat([zhang_perc_modeff,zhang_shj_modeff,zhang_topcon_modeff], axis=1)
modeffs.columns=['PERC','SHJ','TOPCon']
Aguse = pd.concat([perc_Ag_kgpm2,shj_Ag_kgpm2,topcon_Ag_kgpm2], axis=1)
Aguse.columns=['PERC','SHJ','TOPCon']
plt.plot(modeffs, label=modeffs.columns)
plt.legend()
plt.title('Module Efficiency over Time')
plt.ylabel('Module Efficiency [%]')
Text(0, 0.5, 'Module Efficiency [%]')
plt.plot(Aguse, label=Aguse.columns)
plt.legend()
plt.title('Silver Use over time')
plt.ylabel('Silver Intensity [kg/m2]')
Text(0, 0.5, 'Silver Intensity [kg/m2]')
One important aspect of these technologies is bifaciality. Each has a different bifaciality factor, and they are not expected to increase substantially with time (ITRPV 2022). We plan to explore monofacial and bifacial modules of these technologies (for example residential vs utility). We will use a static inventory of bifacial factors.
bifiFactors = {'PERC':0.7,
'SHJ':0.9,
'TOPCon':0.8} # ITRPV 2022, Fig. 58
#PV ICE currently set up to read in a csv of bifi factors, so generate files to read in
idx_temp = Aguse.index
df_temp = pd.DataFrame(index=idx_temp, columns=['bifi'], dtype=float)
bifi_perc = df_temp.copy()
bifi_perc['bifi'] = bifiFactors['PERC']
bifi_shj = df_temp.copy()
bifi_shj['bifi'] = bifiFactors['SHJ']
bifi_topcon = df_temp.copy()
bifi_topcon['bifi'] = bifiFactors['TOPCon']
bifi_perc.to_csv(path_or_buf=os.path.join(testfolder,'bifi_perc.csv'), index_label='Year')
bifi_shj.to_csv(path_or_buf=os.path.join(testfolder,'bifi_shj.csv'), index_label='Year')
bifi_topcon.to_csv(path_or_buf=os.path.join(testfolder,'bifi_topcon.csv'), index_label='Year')
bifi_perc_path = os.path.join(testfolder,'bifi_perc.csv')
bifi_shj_path = os.path.join(testfolder,'bifi_shj.csv')
bifi_topcon_path = os.path.join(testfolder,'bifi_topcon.csv')
To create a blended scenario, we will use the ITRPV 2022 cell market share projection through 2030, and then keep it constant through 2050.
#insert data from Jarett here
itrpv_celltech_marketshare = pd.read_csv(os.path.join(supportMatfolder,'CellTechCompare','ITRPV_celltech_marketshare.csv'), index_col=0)
itrpv_celltech_marketshare.columns
#there are more cell techs here than I need - I'm not currently concerned with n-type vs p-type
#the marketshares of "n-type back contact", "n-type other", "tandem si-based" are small and outside scope of study
#remove and renormalize.
Index(['p-type (Al-BSF)', 'p-type (PERC)', 'p-type (TOPCon)',
'n-type (back contact)', 'n-type (SHJ)', 'n-type (TOPCon)',
'n-type (other)', 'tandem (Si-based)'],
dtype='object')
#subset for desired techs
celltech_marketshare_sub_raw = itrpv_celltech_marketshare.loc[2020:].filter(regex=('PERC|TOPCon|SHJ'))
#interpolate to fill gaps
celltech_marketshare_sub_raw.interpolate(inplace=True, limit_direction='both')
#renormalize
celltech_marketshare_sub_raw['temp_sum'] = celltech_marketshare_sub_raw.iloc[:,[0,1,2,3]].sum(axis=1)
celltech_marketshare_sub_raw['scale'] = 1/celltech_marketshare_sub_raw['temp_sum'] #create scaling factor
celltech_marketshare_scaled = celltech_marketshare_sub_raw.iloc[:,[0,1,2,3]]*celltech_marketshare_sub_raw.loc[:,['scale']].values
#celltech_marketshare_scaled.sum(axis=1) # test check that everything adds to 1
celltech_marketshare_scaled.columns
Index(['p-type (PERC)', 'p-type (TOPCon)', 'n-type (SHJ)', 'n-type (TOPCon)'], dtype='object')
plt.plot([],[],color='blue', label='PERC')
plt.plot([],[],color='orange', label='TOPCon (p-type)')
plt.plot([],[],color='red', label='TOPCon (n-type)')
plt.plot([],[],color='purple', label='SHJ')
#plt.plot([],[],color='red', label='Cell')
plt.stackplot(celltech_marketshare_scaled.index,
celltech_marketshare_scaled['p-type (PERC)'],
celltech_marketshare_scaled['p-type (TOPCon)'],
celltech_marketshare_scaled['n-type (TOPCon)'],
celltech_marketshare_scaled['n-type (SHJ)'],
colors = ['blue','orange','red','purple'])
plt.title('Market Share Cell Type: Blended Projection')
plt.ylabel('Market Share [fraction]')
#plt.xlim(1995,2022)
plt.legend(loc='lower center')
plt.show()
celltech_marketshare_scaled['TOPCon'] = celltech_marketshare_scaled.filter(like='TOPCon').sum(axis=1)
Other Assumptions:
#glass-glass package mass per area calculation
#ITRPV 2022 Figs 36 and 38, we are assuming that the front and back glass heave equal thickness of 2.5mm
density_glass = 2500*1000 # g/m^3
glassperm2 = (2.5/1000)* 2 * density_glass
print('The mass per module area of glass is '+str(glassperm2)+' g/m^2')
The mass per module area of glass is 12500.0 g/m^2
Pull in deployment projection. This deployment is based on the Solar Futures report, but has been modified to be more reasonable annual deployment schedule (i.e. manufacturing ramps up). However, this does not achieve 95% RE by 2035, but it does achieve 100% RE in 2050.
sf_reeds_alts = pd.read_excel(os.path.join(supportMatfolder,'SF_reeds_alternates.xlsx'),index_col=0)
sf_reeds = sf_reeds_alts.loc[2023:2050,['MW']]
#try sorting the Reeds Deployment to be in ascending order
sf_reeds['MW'].values.sort() #this sorts the column values in place
sf_reeds['TW_cum'] = sf_reeds['MW'].cumsum()/1e6
fig, ax1 = plt.subplots()
ax1.plot(sf_reeds['MW'])
ax1.set_ylabel('Annual Deployments [MW]', color='blue')
ax2 = ax1.twinx()
ax2.plot(sf_reeds['TW_cum'], color='orange')
ax2.set_ylabel('Cumulative Capacity [TW]', color='orange')
plt.legend(['Cumulative Capacity'])
plt.show()
sf_reeds.loc[2030]
MW 29613.993350 TW_cum 0.207411 Name: 2030.0, dtype: float64
sf_reeds.loc[2050]
MW 87426.894740 TW_cum 1.523311 Name: 2050.0, dtype: float64
#historical 2020-2022 from Wood Mac
history = sf_reeds_alts.loc[2020:2022,['Historically annual']]
history.columns=['MW']
projection = sf_reeds[['MW']]
newdeploymentcurve = pd.concat([history,projection],axis=0)
scennames = ['PERC','SHJ','TOPCon'] #add later Blend and bifi on/off
MATERIALS = ['glass','silver','silicon'] #, 'copper', 'encapsulant', 'backsheet', 'aluminum_frames'
moduleFile_m = os.path.join(baselinesfolder, 'baseline_modules_mass_US.csv')
moduleFile_e = os.path.join(baselinesfolder, 'baseline_modules_energy.csv')
#load in a baseline and materials for modification
import PV_ICE
sim1 = PV_ICE.Simulation(name='sim1', path=testfolder)
for scen in scennames:
sim1.createScenario(name=scen, massmodulefile=moduleFile_m, energymodulefile=moduleFile_e)
for mat in range (0, len(MATERIALS)):
matbaseline_m = os.path.join(baselinesfolder,'baseline_material_mass_'+MATERIALS[mat]+'.csv')
matbaseline_e = os.path.join(baselinesfolder,'baseline_material_energy_'+MATERIALS[mat]+'.csv')
sim1.scenario[scen].addMaterial(MATERIALS[mat], massmatfile=matbaseline_m, energymatfile=matbaseline_e)
path = C:\Users\hmirletz\Documents\GitHub\PV_ICE\PV_ICE\TEMP\CellTechCompare
Modify the all one tech scenarios Scenarios:
Module level
material level
#trim to 2020-2050, this trims module and materials
sim1.trim_Years(startYear=2020)
endYear not provided. Setting to end year of Module data 2050
#no circularity
sim1.scenMod_noCircularity()
#deployment projection
#NEED TO PULL IN DEPLOYMENT PROJECTION
for scen in scennames:
sim1.scenario[scen].dataIn_m.loc[0:len(newdeploymentcurve.index-1),'new_Installed_Capacity_[MW]'] = newdeploymentcurve.values
#module eff
#modeffs
for scen in scennames:
sim1.scenario[scen].dataIn_m.loc[0:len(modeffs.index-1),'mod_eff'] = modeffs[scen].values
#glass modify
for scen in scennames:
sim1.scenario[scen].material['glass'].matdataIn_m['mat_massperm2'] = glassperm2
#silver modify
#Aguse
for scen in scennames:
sim1.scenario[scen].material['silver'].matdataIn_m.loc[0:len(Aguse.index-1),'mat_massperm2'] = Aguse[scen].values
sim1.scenario['PERC'].dataIn_m.head()
| year | new_Installed_Capacity_[MW] | mod_eff | mod_reliability_t50 | mod_reliability_t90 | mod_degradation | mod_lifetime | mod_MFG_eff | mod_Repair | mod_MerchantTail | ... | mod_EOL_pg2_stored | mod_EOL_pg3_reMFG | mod_EOL_pg4_recycled | mod_EOL_reMFG_yield | mod_EOL_sp_reMFG_recycle | mod_EOL_pb1_landfill | mod_EOL_pb2_stored | mod_EOL_pb3_reMFG | mod_EOL_pb4_recycled | mod_EOL_collection_eff | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2020 | 19914.550101 | 22.80 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 1 | 2021 | 24094.804465 | 22.97 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | 2022 | 21893.147053 | 23.14 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 3 | 2023 | 23596.728960 | 23.31 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | 2024 | 23596.728960 | 23.48 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
5 rows × 23 columns
sim1.scenario['PERC'].material['silver'].matdataIn_m.head()
| year | mat_virgin_eff | mat_massperm2 | mat_MFG_eff | mat_MFG_scrap_Recycled | mat_MFG_scrap_Recycling_eff | mat_MFG_scrap_Recycled_into_HQ | mat_MFG_scrap_Recycled_into_HQ_Reused4MFG | mat_PG3_ReMFG_target | mat_ReMFG_yield | mat_PG4_Recycling_target | mat_Recycling_yield | mat_EOL_Recycled_into_HQ | mat_EOL_RecycledHQ_Reused4MFG | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2020 | 75.0 | 3.483815 | 80.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 1 | 2021 | 75.0 | 3.342285 | 80.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | 2022 | 75.0 | 3.200755 | 80.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 3 | 2023 | 75.0 | 3.059225 | 80.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | 2024 | 75.0 | 2.917695 | 80.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
scennames
bifi_perc_path
bifi_shj_path
bifi_topcon_path
bifipaths = [bifi_perc_path,bifi_shj_path,bifi_topcon_path]
bifipaths[0]
'C:\\Users\\hmirletz\\Documents\\GitHub\\PV_ICE\\PV_ICE\\TEMP\\CellTechCompare\\bifi_perc.csv'
#option 1, install identical power
sim1.calculateFlows(scenarios='PERC', bifacialityfactors=bifi_perc_path)
sim1.calculateFlows(scenarios='SHJ', bifacialityfactors=bifi_shj_path)
sim1.calculateFlows(scenarios='TOPCon', bifacialityfactors=bifi_topcon_path)
perc_yearly, perc_cum = sim1.aggregateResults(scenarios='PERC')
shj_yearly, shj_cum = sim1.aggregateResults(scenarios='SHJ')
topcon_yearly, topcon_cum = sim1.aggregateResults(scenarios='TOPCon')
>>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon
sim1.plotMaterialComparisonAcrossScenarios(keyword='mat_Virgin_Stock', material='silver')
plt.plot(sim1.scenario['TOPCon'].dataIn_m['year'],sim1.scenario['PERC'].dataOut_m['Area'])
plt.plot(sim1.scenario['TOPCon'].dataIn_m['year'],sim1.scenario['SHJ'].dataOut_m['Area'])
plt.plot(sim1.scenario['TOPCon'].dataIn_m['year'],sim1.scenario['TOPCon'].dataOut_m['Area'])
plt.title('Active Area')
plt.legend(['PERC','SHJ','TOPCon'])
<matplotlib.legend.Legend at 0x26725bf4f70>
#pulling out energy generation results
#the index location is a temp fix due to having extra lenght index, likely due to empty material energy files
perc_energyGen_annual = sim1.scenario['PERC'].dataOut_e.loc[0:30,['e_out_annual_[Wh]']]
shj_energyGen_annual = sim1.scenario['SHJ'].dataOut_e.loc[0:30,['e_out_annual_[Wh]']]
topcon_energyGen_annual = sim1.scenario['TOPCon'].dataOut_e.loc[0:30,['e_out_annual_[Wh]']]
energyGen = pd.concat([perc_energyGen_annual, shj_energyGen_annual, topcon_energyGen_annual],axis=1)
energyGen.index=idx_temp
energyGen.columns = ['PERC','SHJ','TOPCon']
fig, ax1 = plt.subplots()
ax1.plot(energyGen)
#ax1.set_ylabel('Annual Deployments [MW]', color='blue')
#ax2 = ax1.twinx()
#ax2.plot(sf_reeds['TW_cum'], color='orange')
#ax2.set_ylabel('Cumulative Capacity [TW]', color='orange')
plt.legend(energyGen.columns)
plt.title('Annual Energy Generation')
plt.show()
#option 2, compensation for area deployed
#styled on installation compensation
subscens = ['SHJ','TOPCon']
sim1.calculateFlows(scenarios='PERC', bifacialityfactors=bifi_perc_path)
for row in range (0,len(sim1.scenario['PERC'].dataIn_m)):
for scenario in range (0, len(subscens)):
scen = list(subscens)[scenario]
#perc will install the most area because lowest eff and lowest bifi, so compare to PERC
#bigger number-smaller number = (+)
perc_area_installed = (sim1.scenario['PERC'].dataIn_m['new_Installed_Capacity_[MW]'][row]*1e6)/(sim1.scenario['PERC'].dataIn_m['mod_eff'][row]*0.01)/1070
#installed cap in W / module eff that year / irradiance that year
scen_area_installed = sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row]*1e6/(sim1.scenario[scen].dataIn_m['mod_eff'][row]*0.01)/(1000+bifiFactors[scen]*100) #this bifi factor thing only works because it is constant rn
#
delta_install_area = perc_area_installed-scen_area_installed
#Convert area difference into a new installs modficiation
delta_install_power = (delta_install_area * (1000+bifiFactors[scen]*100)* (sim1.scenario[scen].dataIn_m['mod_eff'][row]*0.01))/1000000 #MW
#update the new installations to compensate for area deployed
sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
sim1.calculateFlows(bifacialityfactors=bifipaths[scenario])
>>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ********************
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon >>>> Calculating Material Flows <<<< Working on Scenario: PERC ******************** Finished Area+Power Generation Calculations
C:\Users\hmirletz\AppData\Local\Temp\1\ipykernel_20112\1226065425.py:23: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy sim1.scenario[scen].dataIn_m['new_Installed_Capacity_[MW]'][row] -= delta_install_power #subtracting installs
==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: SHJ ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon Working on Scenario: TOPCon ******************** Finished Area+Power Generation Calculations ==> Working on Material : glass ==> Working on Material : silver ==> Working on Material : silicon >>>> Calculating Energy Flows <<<< Working on Scenario: PERC ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: SHJ ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon Working on Scenario: TOPCon ******************** ==> Working on Energy for Material : glass ==> Working on Energy for Material : silver ==> Working on Energy for Material : silicon
sim1_yearly, sim1_cum = sim1.aggregateResults()
plt.plot(sim1.scenario['PERC'].dataIn_m['year'], sim1.scenario['PERC'].dataOut_m['Installed_Capacity_[W]'])
plt.plot(sim1.scenario['PERC'].dataIn_m['year'], sim1.scenario['SHJ'].dataOut_m['Installed_Capacity_[W]'])
plt.plot(sim1.scenario['PERC'].dataIn_m['year'], sim1.scenario['TOPCon'].dataOut_m['Installed_Capacity_[W]'])
plt.title('Installed Capacity [W]')
Text(0.5, 1.0, 'Installed Capacity [W]')
sim1.plotMetricResults()
[]
sim1.plotMaterialComparisonAcrossScenarios(keyword='mat_Virgin_Stock', material='silver')
plt.plot(sim1.scenario['TOPCon'].dataIn_m['year'],sim1.scenario['PERC'].dataOut_m['Area'])
plt.plot(sim1.scenario['TOPCon'].dataIn_m['year'],sim1.scenario['SHJ'].dataOut_m['Area'])
plt.plot(sim1.scenario['TOPCon'].dataIn_m['year'],sim1.scenario['TOPCon'].dataOut_m['Area'])
plt.title('Active Area')
plt.legend(['PERC','SHJ','TOPCon'])
<matplotlib.legend.Legend at 0x26729953a00>
#pulling out energy generation results
#the index location is a temp fix due to having extra lenght index, likely due to empty material energy files
perc_energyGen_annual = sim1.scenario['PERC'].dataOut_e.loc[0:30,['e_out_annual_[Wh]']]
shj_energyGen_annual = sim1.scenario['SHJ'].dataOut_e.loc[0:30,['e_out_annual_[Wh]']]
topcon_energyGen_annual = sim1.scenario['TOPCon'].dataOut_e.loc[0:30,['e_out_annual_[Wh]']]
energyGen = pd.concat([perc_energyGen_annual, shj_energyGen_annual, topcon_energyGen_annual],axis=1)
energyGen.index=idx_temp
energyGen.columns = ['PERC','SHJ','TOPCon']
fig, ax1 = plt.subplots()
ax1.plot(energyGen)
#ax1.set_ylabel('Annual Deployments [MW]', color='blue')
#ax2 = ax1.twinx()
#ax2.plot(sf_reeds['TW_cum'], color='orange')
#ax2.set_ylabel('Cumulative Capacity [TW]', color='orange')
plt.legend(energyGen.columns)
plt.title('Annual Energy Generation')
plt.show()
PROBLEMS:
sim1.scenario['TOPCon'].dataIn_m
| year | new_Installed_Capacity_[MW] | mod_eff | mod_reliability_t50 | mod_reliability_t90 | mod_degradation | mod_lifetime | mod_MFG_eff | mod_Repair | mod_MerchantTail | ... | mod_EOL_pg2_stored | mod_EOL_pg3_reMFG | mod_EOL_pg4_recycled | mod_EOL_reMFG_yield | mod_EOL_sp_reMFG_recycle | mod_EOL_pb1_landfill | mod_EOL_pb2_stored | mod_EOL_pb3_reMFG | mod_EOL_pb4_recycled | mod_EOL_collection_eff | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2020 | 19375.789522 | 23.20 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 1 | 2021 | 23435.522915 | 23.38 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | 2022 | 21287.455338 | 23.56 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 3 | 2023 | 22936.841364 | 23.74 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | 2024 | 22929.878765 | 23.92 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 5 | 2025 | 23544.439501 | 24.10 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 6 | 2026 | 23537.491571 | 24.28 | 33.0 | 38.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 7 | 2027 | 25493.649372 | 24.46 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 8 | 2028 | 25486.332939 | 24.64 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 9 | 2029 | 28735.234775 | 24.82 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 10 | 2030 | 28727.211554 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 11 | 2031 | 34149.465494 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 12 | 2032 | 34149.465494 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 13 | 2033 | 49505.566130 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 14 | 2034 | 49505.566130 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 15 | 2035 | 55682.437485 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 16 | 2036 | 55682.437485 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 17 | 2037 | 58141.094726 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 18 | 2038 | 58141.094726 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 19 | 2039 | 64035.351175 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 20 | 2040 | 64035.351175 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 21 | 2041 | 65031.879035 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 22 | 2042 | 65031.879035 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 23 | 2043 | 71925.806992 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 24 | 2044 | 71925.806992 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 25 | 2045 | 76201.034142 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 26 | 2046 | 76201.034142 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 27 | 2047 | 78766.538125 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 28 | 2048 | 78766.538125 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 29 | 2049 | 84808.923641 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 30 | 2050 | 84808.923641 | 25.00 | 40.0 | 44.0 | 0.5 | 35.0 | 98.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 |
31 rows × 23 columns
def aggregateEnergyResults(self, scenarios=None, materials=None):
if scenarios is None:
scenarios = list(self.scenario.keys())
else:
if isinstance(scenarios, str):
scenarios = [scenarios]
if materials is None:
materials = list(self.scenario[scenarios[0]].material.keys())
else:
if isinstance(materials, str):
materials = [materials]
#categorize the energy in values into lifecycle stages
mfg_energies = ['mod_MFG','mat_extraction','mat_MFG_virgin']
mfg_recycle_energies_LQ = ['mat_MFGScrap_LQ'] #LQ and HQ are separate becuase LQ is only LQ
mfg_recycle_energies_HQ = ['mat_MFGScrap_HQ'] #and HQ material is E_LQ + E_HQ
use_energies = ['mod_Install','mod_OandM','mod_Repair']
eol_energies = ['mat_Landfill','mod_Demount','mod_Store','mod_Resell_Certify']
eol_remfg_energies = ['mod_ReMFG_Disassmbly','mat_EoL_ReMFG_clean']
eol_recycle_energies_LQ = ['mod_Recycle_Crush','mat_Recycled_LQ']
eol_recycle_energies_HQ = ['mod_Recycle_Crush','mat_Recycled_HQ']
File <tokenize>:4 else: ^ IndentationError: unindent does not match any outer indentation level
#categorize the energy in values into lifecycle stages
mfg_energies = ['mod_MFG','mat_extraction','mat_MFG_virgin']
mfg_recycle_energies_LQ = ['mat_MFGScrap_LQ'] #LQ and HQ are separate becuase LQ is only LQ
mfg_recycle_energies_HQ = ['mat_MFGScrap_HQ'] #and HQ material is E_LQ + E_HQ
use_energies = ['mod_Install','mod_OandM','mod_Repair']
eol_energies = ['mat_Landfill','mod_Demount','mod_Store','mod_Resell_Certify']
eol_remfg_energies = ['mod_ReMFG_Disassmbly','mat_EoL_ReMFG_clean']
eol_recycle_energies_LQ = ['mod_Recycle_Crush','mat_Recycled_LQ']
eol_recycle_energies_HQ = ['mod_Recycle_Crush','mat_Recycled_HQ']